<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
    //检查一个字符串中是否含有.
    //.表示任意字符
    var reg=/./;
    console.log(reg.test("ahduads"));//.表示任意字符，所以不管内容是什么，控制台输出都是true
    
    //在正则表达式中用\作为转义字符
    //\.来表示.
    //同理 \\表示\
    var reg2=/\./;
    console.log(reg2.test("agbuidashduia"));//字符串中没有.，所以控制台输出false
    console.log(reg2.test("asdasd.asdasd"));//字符串中有.，所以控制台输出true
    var reg3=/\\/;
    console.log(reg3.test("b\\"));//要在字符串中输入\,必须输入\\
    
    //使用构造函数时，由于他的参数是一个字符串，而\是字符串中转义字符
    //如果要使用\则需要使用\\来代替
    var reg4 =new RegExp("\\.");//这样的字符串表示检索是否有.
    console.log(reg4.test("asd"));//字符串中没有.，所以输出false
    console.log(reg4.test("ad.asd"));//字符串中有.，所以输出true

    // \w 任意字母、数字以及下划线_ [A-z0-9_]
    var reg4=/\w/;
    console.log(reg4.test("abc"));
    console.log(reg4.test("ABC"));
    console.log(reg4.test("123"));
    console.log(reg4.test("___"));
    //以上输出都是ture，可以使大写字母也可以是小写字母，还可以是数字和下划线_

    // \W 跟\w相反，除了字母、数字以及下划线_ [^A-z0-9_] 这里的^表示除了
    var reg5=/\W/;
    console.log(reg5.test("!@#$%^^*&**%"));
    console.log(reg5.test("abc"));
    console.log(reg5.test("ABC"));
    console.log(reg5.test("123"));
    console.log(reg5.test("___"));
    //第一个输出true，后面几个全部输出false。除了字母、数字以及下划线_，其余的都输出true

    // \d 表示任意数字 [0-9]
    // \D 表示除了数字 [^0-9]
    // \s 表示空格 
    // \S 表示除了空格

    // \b 表示边界 \B 表示除了单词边界
    var reg6=/\bchild\b/;
    console.log(reg6.test("hell child"));//控制台输出true
    console.log(reg6.test("hello children"));//控制台输出false
    // \bchild\b 表示搜索child这个单词，并且要存在边界
    </script>
</head>
<body>
    
</body>
</html>